#ifndef __MAZECELL_H__
#define __MAZECELL_H__



#ifdef _MSC_VER
typedef unsigned __int16 uint16_t;
#else
#include <stdint.h>
#endif
#include <boost/smart_ptr/shared_ptr.hpp>

// Cells
struct SMazeCell
{
	enum eFlags
	{
		WallNorth=1,
		WallEast=2,
		WallSouth=4,
		WallWest=8,
		Walls=15
	};

	SMazeCell() : m_flags(SMazeCell::Walls),
			m_uiX(0),
			m_uiY(0)
	{}

	SMazeCell(unsigned int uiX, unsigned int uiY) : m_flags(SMazeCell::Walls),
			m_uiX(uiX),
			m_uiY(uiY)
	{}

	uint16_t m_flags;
	unsigned int m_uiX;
	unsigned int m_uiY;
};
typedef boost::shared_ptr<SMazeCell> MazeCellPtr;


#endif // __MAZECELL_H__